package com.train.course.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.train.course.domain.VideoEpisode;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * 课程视频集Mapper接口
 * 
 * @author ruoyi
 */
@Mapper
public interface VideoEpisodeMapper  extends BaseMapper<VideoEpisode>
{
    /**
     * 查询课程视频集
     * 
     * @param episodeId 课程视频集主键
     * @return 课程视频集
     */
    public VideoEpisode selectVideoEpisodeById(Long episodeId);

    /**
     * 查询课程视频集列表
     * 
     * @param videoEpisode 课程视频集
     * @return 课程视频集集合
     */
    public List<VideoEpisode> selectVideoEpisodeList(VideoEpisode videoEpisode);

    /**
     * 根据课程ID查询视频集列表
     * 
     * @param courseId 课程ID
     * @return 课程视频集集合
     */
    public List<VideoEpisode> selectVideoEpisodeListByCourseId(Long courseId);

    /**
     * 新增课程视频集
     * 
     * @param videoEpisode 课程视频集
     * @return 结果
     */
    public int insertVideoEpisode(VideoEpisode videoEpisode);

    /**
     * 修改课程视频集
     * 
     * @param videoEpisode 课程视频集
     * @return 结果
     */
    public int updateVideoEpisode(VideoEpisode videoEpisode);

    /**
     * 删除课程视频集
     * 
     * @param episodeId 课程视频集主键
     * @return 结果
     */
    public int deleteVideoEpisodeById(Long episodeId);

    /**
     * 批量删除课程视频集
     * 
     * @param episodeIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteVideoEpisodeByIds(Long[] episodeIds);

    /**
     * 增加视频点赞数
     * 
     * @param episodeId 视频集ID
     * @return 结果
     */
    public int incrementLikeCount(Long episodeId);

    /**
     * 减少视频点赞数
     * 
     * @param episodeId 视频集ID
     * @return 结果
     */
    public int decrementLikeCount(Long episodeId);

    /**
     * 增加视频收藏数
     * 
     * @param episodeId 视频集ID
     * @return 结果
     */
    public int incrementCollectCount(Long episodeId);

    /**
     * 减少视频收藏数
     * 
     * @param episodeId 视频集ID
     * @return 结果
     */
    public int decrementCollectCount(Long episodeId);
}